/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo.DAO;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.conexion.Conexion;
import modelo.vo.Subasta;
import modelo.vo.Usuario;

/**
 *
 * @author carlos
 */
public class SubastaDAO extends AbstractDAO
{

    private Subasta subasta;

    public SubastaDAO(Subasta subasta) {
        this.subasta = subasta;
        this.conexion=new Conexion();
    }
    
    
    
    @Override
    public void insertar() 
    {
        String query="INSERT INTO `subasta`.`subasta` (`NOMBREPRODUCRO`, `NOMBRE`, `ESTADO`) VALUES ('"+subasta.getNombreProducto()+"', '"+subasta.getPropietario().getUsuario()+"', '"+subasta.getEstado()+"');";
        conexion.ejecutarQuery(query);
    }

    @Override
    public void editar() 
    {
        String query="UPDATE `subasta`.`subasta` SET `NOMBREPRODUCRO`='"+subasta.getNombreProducto()+"', `NOMBRE`='"+subasta.getPropietario().getUsuario()+"', `ESTADO`='"+subasta.getEstado()+"' WHERE `NOMBREPRODUCRO`='"+subasta.getNombreProducto()+"';";
        conexion.ejecutarQuery(query);
    }

    @Override
    public void eliminar() {
        String query="DELETE FROM `subasta`.`subasta` WHERE `NOMBREPRODUCRO`='"+subasta.getNombreProducto()+"';";
        conexion.ejecutarQuery(query);
        //DELETE FROM `subasta`.`subasta` WHERE `NOMBRE`='cpu';

    }

    @Override
    public ArrayList lista() 
    {
        String query="SELECT * FROM subasta.subasta;";
        ResultSet rs=conexion.ejecutarConsulta(query);
        ArrayList lista=new ArrayList();
        try {
            while(rs.next())
            {
               Subasta subasta= new Subasta(rs.getString(1),rs.getString(3));
               Usuario usuario=(new UsuarioDAO(null)).buscar(rs.getString(2));
               subasta.setPropietario(usuario);
               
               lista.add(subasta);
            }
        } catch (SQLException ex) {
            Logger.getLogger(SubastaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return lista;
    }
    
     public Subasta buscar(String codigo) 
    {
        String query="SELECT * FROM subasta.subasta;";
        ResultSet rs=conexion.ejecutarConsulta(query);
        ArrayList lista=new ArrayList();
        try {
            while(rs.next())
            {
                if(rs.getString(1).equals(codigo))
                {
                    Subasta subasta= new Subasta(rs.getString(1),rs.getString(3));
                    Usuario usuario=(new UsuarioDAO(null)).buscar(rs.getString(2));
                    subasta.setPropietario(usuario);
                    return subasta;
               
                }
               
            }
        } catch (SQLException ex) {
            Logger.getLogger(SubastaDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    public Subasta getSubasta() {
        return subasta;
    }

    
    
}
